package com.ruicar.afs.cloud.manage.api.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruicar.afs.cloud.common.modules.contract.enums.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author: Lee
 * @date 2020-06-19 01:07:04
 * @description 溢缴款、差额处理记录
 */
@Data
public class OverpaymentDifferenceDTO {

	/** 合同号码 */
	@ApiModelProperty("合同号码")
	private String contractNo;
	/** 类型 */
	@ApiModelProperty("类型")
	private OverpaymentDifferenceTypeEnum type;
	/** 申请编号 */
	@ApiModelProperty("申请编号")
	private String applyNo;
	/** 案件编号 */
	@ApiModelProperty("案件编号")
	private String caseNo;
	/** 数据来源 枚举值：CMS、多品系统 */
	@ApiModelProperty("数据来源 枚举值：CMS、多品系统")
	private DataSourceEnum dataSource;
	/** 差额/溢缴款金额 */
	@ApiModelProperty("差额/溢缴款金额")
	private BigDecimal amount;
	/** 处理方式 */
	@ApiModelProperty("处理方式")
	private ProcessModeEnum processMode;
	/** 收款/付款方式 */
	@ApiModelProperty("收款/付款方式")
	private String termsPayment;
	/** 收入/退款净额 */
	@ApiModelProperty("收入/退款净额")
	private BigDecimal netAmount;
	/** 支付至/支付人 */
	@ApiModelProperty("支付至/支付人")
	private String payer;
	/** 退款账户 */
	@ApiModelProperty("退款账户")
	private String refundAccount;
	/** 支付时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("支付时间")
	private Date paymentTime;
	/** 退款银行/收款银行 */
	@ApiModelProperty("退款银行/收款银行")
	private String bankName;
	/** 分支行 */
	@ApiModelProperty("分支行")
	private String branchBank;
	/** 收入金额 */
	@ApiModelProperty("收入金额")
	private BigDecimal incomeAmount;
	/** 结束时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("结束时间")
	private Date endTime;
	/** 处理状态 */
	@ApiModelProperty("处理状态")
	private ProcessStatusEnum processStatus;
	/** 客户姓名 */
	@ApiModelProperty("客户姓名")
	private String custName;
	/** 证件号码 */
	@ApiModelProperty("证件号码")
	private String certNo;
	/** 联系方式号码 */
	@ApiModelProperty("联系方式号码")
	private String contactNo;
	/** 合同状态 枚举值：合同取消、合同生效、正常结清、提前结清、核销 */
	@ApiModelProperty("合同状态 枚举值：合同取消、合同生效、正常结清、提前结清、核销")
	private ContractStatusEnum contractStatus;
	/** 合作商全称 */
	@ApiModelProperty("合作商全称")
	private String channelFullName;
	/** 渠道类型 枚举值：合作商，直营车商 */
	@ApiModelProperty("渠道类型 枚举值：合作商，直营车商")
	private ChannelTypeEnum channelType;
	/** 产品名称 */
	@ApiModelProperty("产品名称")
	private String productName;
	/** 合同关闭日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同关闭日期")
	private Date closeDate;
	/** 合同到期日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同到期日期")
	private Date endDate;
	/** 合同激活时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同激活时间")
	private Date startDate;
	/** 请求时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("请求时间")
	private Date requestDate;
	/** 拨备额 */
	@ApiModelProperty("拨备额")
	private BigDecimal provision;
	/** 核销额 */
	@ApiModelProperty("核销额")
	private BigDecimal writeOffAmount;
	/** 资产信息 */
	@ApiModelProperty("资产信息")
	private String assetsInfo;
	/** 客户号 */
	@ApiModelProperty("客户号")
	private String custNo;
	/** 联行号 */
	@ApiModelProperty("联行号")
	private String bankNo;
}
